// axios的二次封装
// 导入axios
import axios from 'axios'
import { getToken, removeToken } from '@/utils/token'
import { Notify } from 'vant'
import router from '@/router'
// 设置url基地址
// axios.defaults.baseURL = 'http://geek.itheima.net'
axios.defaults.baseURL = 'http://toutiao.itheima.net'
// 设置响应超时
axios.defaults.timeout = 8000

// 添加请求拦截器
axios.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  config.headers.Authorization = `Bearer ${getToken()}`
  return config
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error)
})

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
  // 对响应数据做点什么
  return response
}, function (error) {
  // 对响应错误做点什么
  if (error.response.status === 401) {
    Notify({ type: 'danger', message: '身份过期，请重新登录!' })
    removeToken()
    router.replace('/login')
  }
  return Promise.reject(error)
})

// 自定义函数来接请求参数，随后依据实际情况作相应的处理
// 降低了代码的维护难度,更加灵活
export default ({ url, method, params, data, headers }) =>
  axios({
    url,
    data,
    params,
    method,
    headers
  })

//   if (method.toUppercase() === 'GET') {
//     // 自己把params参数拼接到url后面

//   }
//   $.ajax({
//     url: url,
//     data: data,
//     type: method,
//     headers: headers
//   })
